home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-06-07 | 4.0 KB | 113 lines | [TEXT/KAHL] |
- ///--------------------------------------------------------------------------------------
- // SpriteWorld.h
- //
- // Created: Wednesday, May 29, 1991 at 10:43:28 PM
- // By: Tony Myles
- //
- // Copyright: © 1991-93 Tony Myles, All rights reserved worldwide
- //
- // Description: constants, structures, and prototypes for sprite worlds
- ///--------------------------------------------------------------------------------------
-
-
- #ifndef __SPRITEWORLD__
- #define __SPRITEWORLD__
-
- #ifndef __SPRITELAYER__
- #include "SpriteLayer.h"
- #endif
-
- #ifndef __SPRITE__
- #include "Sprite.h"
- #endif
-
- #ifndef __FRAME__
- #include "Frame.h"
- #endif
-
- #ifndef SW_PASCAL
- #define SW_PASCAL
- #endif
-
- ///--------------------------------------------------------------------------------------
- // sprite world error constants
- ///--------------------------------------------------------------------------------------
-
- enum
- {
- kQuickDrawTooOldErr = 100,
- kTimeMgrNotPresentErr,
- kTimeMgrTooOldErr,
- kMaxFramesErr, // attempt to exceed maximum number of frames for a sprite
- kInvalidFramesIndexErr // frame index out of range
- };
-
-
- ///--------------------------------------------------------------------------------------
- // sprite world type definitions
- ///--------------------------------------------------------------------------------------
-
- typedef struct SpriteWorldRec SpriteWorldRec;
- typedef SpriteWorldRec *SpriteWorldPtr, **SpriteWorldHdl;
-
-
- ///--------------------------------------------------------------------------------------
- // sprite world data structure
- ///--------------------------------------------------------------------------------------
-
- struct SpriteWorldRec
- {
- SpriteLayerPtr headSpriteLayerP; // head of the sprite layer linked list
- SpriteLayerPtr tailSpriteLayerP; // tail of the sprite layer linked list
-
- FramePtr windowFrameP; // frame for drawing to the screen
- FramePtr backFrameP; // frame for drawing from the background
- FramePtr loadFrameP; // frame for drawing to the loader
-
- DrawProcPtr eraseDrawProc; // callback for erasing sprites offscreen
- MaskDrawProcPtr screenDrawProc; // callback for drawing sprite pieces onscreen
-
- long userData; // reserved for user
- };
-
-
- ///--------------------------------------------------------------------------------------
- // sprite world function prototypes
- ///--------------------------------------------------------------------------------------
-
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- SW_PASCAL OSErr SWEnterSpriteWorld(void);
- SW_PASCAL void SWExitSpriteWorld(void);
-
- SW_PASCAL OSErr SWCreateSpriteWorld(SpriteWorldPtr *spriteWorldP, FramePtr windowFrameP, FramePtr backFrameP, FramePtr loadFrameP);
- SW_PASCAL OSErr SWCreateSpriteWorldFromWindow(SpriteWorldPtr* spriteWorldP, CWindowPtr srcWindowP, Rect* worldRect);
- SW_PASCAL void SWDisposeSpriteWorld(SpriteWorldPtr spriteWorldP);
-
- SW_PASCAL void SWAddSpriteLayer(SpriteWorldPtr spriteWorldP, SpriteLayerPtr spriteLayerP);
- SW_PASCAL void SWRemoveSpriteLayer(SpriteWorldPtr spriteWorldP, SpriteLayerPtr spriteLayerP);
- SW_PASCAL void SWSwapSpriteLayer(SpriteWorldPtr spriteWorldP, SpriteLayerPtr srcSpriteLayerP, SpriteLayerPtr dstSpriteLayerP);
- SW_PASCAL SpriteLayerPtr SWGetNextSpriteLayer(SpriteWorldPtr spriteWorldP, SpriteLayerPtr curSpriteLayerP);
-
- SW_PASCAL void SWLockSpriteWorld(SpriteWorldPtr spriteWorldP);
- SW_PASCAL void SWUnlockSpriteWorld(SpriteWorldPtr spriteWorldP);
-
- SW_PASCAL void SWSetPortToBackGround(SpriteWorldPtr spriteWorldP);
- SW_PASCAL void SWSetPortToWindow(SpriteWorldPtr spriteWorldP);
-
- SW_PASCAL void SWSetSpriteWorldEraseProc(SpriteWorldPtr spriteWorldP, DrawProcPtr eraseProc);
- SW_PASCAL void SWSetSpriteWorldDrawProc(SpriteWorldPtr spriteWorldP, MaskDrawProcPtr drawProc);
- SW_PASCAL void SWUpdateSpriteWorld(SpriteWorldPtr spriteWorldP);
- SW_PASCAL void SWProcessSpriteWorld(SpriteWorldPtr spriteWorldP);
- SW_PASCAL void SWAnimateSpriteWorld(SpriteWorldPtr spriteWorldP);
-
- static void SWUpdateSpriteOffscreen(SpriteWorldPtr spriteWorldP, SpritePtr srcSpriteP);
-
- #ifdef __cplusplus
- };
- #endif
-
- #endif /* __SPRITEWORLD__ */